home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / QuakeTools / src / libqtools / mip.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-06-10  |  1.7 KB  |  69 lines

  1. #ifndef    MIP_H
  2. #define    MIP_H
  3. /*
  4.  * ============================================================================
  5.  * structures
  6.  * ============================================================================
  7.  */
  8. struct mipheader {
  9.   int numtex;
  10.   int offset[0];
  11. };
  12.  
  13. enum mipmapoffset {
  14.   MIPMAP_0 = 0,
  15.   MIPMAP_1 = 1,
  16.   MIPMAP_2 = 2,
  17.   MIPMAP_3 = 3
  18. } __packed;
  19.  
  20. #define    MIPMAP_MAX    4
  21.  
  22. #define NAMELEN_MIP    16
  23. struct mipmap {
  24.   char name[16];
  25.   int width, height;
  26.   int offsets[MIPMAP_MAX];
  27. };
  28.  
  29. #define ANIM_MIPMAP    '+'
  30. #define WARP_MIPMAP    '*'
  31. #define    WARP_SHIFT    6
  32. #define WARP_X        (1 << WARP_SHIFT)
  33. #define WARP_Y        (1 << WARP_SHIFT)
  34. #define    WARP_MASK    ((1 << WARP_SHIFT) - 1)
  35. #define SKY_MIPMAP    "sky"
  36. #define SKY_X        256
  37. #define SKY_Y        128
  38.  
  39. #define NAMELEN_WAL    32
  40. struct wal {
  41.   char name[32];
  42.   int width, height;
  43.   enum mipmapoffset offsets[MIPMAP_MAX];
  44.   char animname[32];
  45.   int flags, contents, value;
  46. };
  47.  
  48. #define    MIP_MULT(x)    ((x)+(x/(2*2))+(x/(4*4))+(x/(8*8)))
  49.  
  50. /*
  51.  * ============================================================================
  52.  * globals
  53.  * ============================================================================
  54.  */
  55.  
  56. /*
  57.  * ============================================================================
  58.  * prototypes
  59.  * ============================================================================
  60.  */
  61.  
  62. struct palpic *GetMipMap(FILE *file, enum mipmapoffset MipLevel);
  63. struct palpic *ParseMipMap(struct mipmap *MipMap, enum mipmapoffset MipLevel);
  64. bool PutMipMap(FILE *file, struct palpic *Picture);
  65. bool PutMipMap0(FILE *file, struct palpic *Picture);
  66. bool PasteMipMap(struct mipmap *MipMap, struct palpic *Picture);
  67. bool PasteMipMap0(struct mipmap *MipMap, struct palpic *Picture);
  68. #endif
  69.